package v1

import (
	"document_manager/global"
	"document_manager/service"
	"fmt"
	"github.com/gin-gonic/gin"
	"io"
)

// GetDirFiles 获取目录下文件
func GetDirFiles(c *gin.Context) {
	path := c.Query("path")
	if path == "" {
		return
	}

	files, err := service.GetDirFiles(path, false)
	if err != nil {
		c.JSON(500, gin.H{
			"code": -1,
			"msg":  err.Error(),
		})
		return
	}

	c.JSON(200, gin.H{
		"code": 0,
		"data": files,
	})
}

// GetFile 获取单个文件
func GetFile(c *gin.Context) {
	path := c.Query("path")
	fmt.Println(global.ROOT_DIR + path)
	c.File(global.ROOT_DIR + path)
}

// SaveTextFile 写文件，若存在则直接替换
func SaveTextFile(c *gin.Context) {
	path := c.Query("path")
	byteBody, err := io.ReadAll(c.Request.Body)
	if err != nil {
		return
	}
	content := string(byteBody)
	isSuccess, err := service.WriteTextFile(path, content)
	if err != nil {
		c.JSON(500, gin.H{
			"code": -1,
			"msg":  err.Error(),
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  isSuccess,
	})
}

// Upload 上传文件
func Upload(c *gin.Context) {
	path := c.Query("path")
	// 单文件
	file, _ := c.FormFile("file")
	// 上传文件至指定目录
	err := c.SaveUploadedFile(file, path)
	if err != nil {
		c.JSON(500, gin.H{
			"code": -1,
			"msg":  err.Error(),
		})
		return
	}
	//	"data": {
	//		"errFiles": ['filename', 'filename2'],
	//"succMap": {
	//"filename3": "filepath3",
	//"filename3": "filepath3"
	//}
	//}
	//fileMap :=
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "上传成功",
		//"data": gin.H{
		//	"errFiles":[]string {},
		//	"succMap":fileMap{ file.Filename,path+file.Filename }
		//},
	})
}

// DeleteFile 删除文件
func DeleteFile(c *gin.Context) {
	path := c.Query("path")
	c.File(path)
}
